import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from "vite-plugin-mock"

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
      vue(),
      /*
        Mock 相关配置:
            supportTs：是否支持 TypeScript，设置为 true。
            injectCode：是否在生成的模拟数据文件中注入额外的代码，例如自定义请求头、请求参数等。默认为 false。
            logger：日志记录器，用于记录 Mock 服务的请求和响应信息。默认为 true，即开启日志记录。
            ignore：忽略某些文件或文件夹，不进行 Mock 处理，例如 node_modules 文件夹。支持使用字符串、正则表达式或函数。
            mocks：自定义模拟数据，可以是一个函数或对象。如果是对象，则以文件路径为键，以模拟数据为值；如果是函数，则以文件路径为参数，返回模拟数据。
            mockUserConfig：自定义配置项，将会在 mock.config.js 中传入。可以用于自定义请求头、请求参数等。
            watchFiles：监听文件变化并自动刷新 Mock 服务，设置为 true。
            routePath：自定义 Mock 服务的路由路径，例如 /api/mock。默认为 /api。
            namespace：自定义 Mock 服务的命名空间，用于区分不同的 Mock 服务。默认为 mock。
            delay：模拟数据的延迟响应时间，单位为毫秒。默认为 0。
            errorChance：模拟数据返回错误的概率，取值范围为 0-1。默认为 0，即不返回错误。
            cors：是否启用 CORS 跨域，设置为 true。
            你可以根据自己的需求进行相应的配置。具体的配置方法可以查看 vite-plugin-mock 官方文档。
      */
      viteMockServe({
        mockPath: "mock",
        localEnabled: true,
      })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})
